/******************************************************************************
秋夜静，独坐对残灯。
啼笑非非谁识我，坐行梦梦尽缘君，何所慰消沉。
风卷雨，雨复卷侬心。
心似欲随风雨去，茫茫大海任浮沉。
无爱亦无恨。
******************************************************************************/
#ifndef _KB_RGB_ANGLE_INT_H_
#define _KB_RGB_ANGLE_INT_H_

#include <stdint.h>
//#include "kbRGB/kbRGB_Angle.h"

#ifdef __cplusplus
extern "C" {
#endif

// precision
#define KBRGB_ANGLE_INT_PRE     2   // 精度为 3bit
#define KBRGB_RADIUS_INT_PRE    2   // 精度为 1bit
//// precision
//#define KBRGB_SIN_PRE       1   // 精度为 1bit
//#define KBRGB_COS_PRE       1   // 精度为 1bit
//#define KBRGB_SIN_CAL_PRE   8   // 精度为 8bit
//#define KBRGB_PI            (3.141592654f)

struct kbRGB_Pixel_Int
{
    union
    {
        uint16_t pixel;
        struct
        {
            uint16_t angle: 9;   //
            uint16_t radius: 7;
        };
    };
};

/*************************************************************************************************
* 为节省空间占用,仅计算 0-90°范围,其它角度根据象限间的关系重新计算
* 为节保留 精度并加快运算速度,将处理后的结果保存为整型，精度为 1/64
**************************************************************************************************/
extern void kbRGB_Angle2_Int(void);
/*************************************************************************************************
* 根据坐标通过查表的方式获取角度值和半径
* 为节保留 精度并加快运算速度,将处理后的结果保存为整型，精度为 1/64
**************************************************************************************************/
extern uint32_t kbRGB_Angle_IntGet(const int16_t x, const int16_t y);

#ifdef __cplusplus
}
#endif

#endif // _KB_RGB_ANGLE_INT_H_
